#!/usr/bin/env python

import pygame
from pygame.locals import*
from sys import exit
from ItensMenu import *
from Alpha import *

img_menu = 'imagens/imagens_menu/fundo.png'
fundo_menu = pygame.image.load(img_menu)

pygame.mixer.init(22050, -16, 2, 4096)
pygame.mixer.music.load('sons/02_Opening.ogg')
pygame.mixer.music.play(-1)

def encontra_recordes():
    arq = open('recordes.txt','r')
    recordes = arq.readlines()
    arq.close()
    lista_recordes = []
    for i in recordes:
        a,b,c = i.split('|')    
        string_recorde = '%s ' % a + '%-12s' % b + c.strip()
        lista_recordes.append(string_recorde)
    return lista_recordes

def menu(estado, personagem_escolhido ='personagem_branco'):
    icone = Icone(estado)
    pygame.init()
    pygame.display.set_caption('Alpha Bomberman')
    screen = pygame.display.set_mode((750,510),0, 32)
    mensagem_nome_vazio = pygame.font.SysFont("Courier New",20).render('',1,(255,255,255))
    while True:
        screen.blit(fundo_menu,(0,0))
        screen.blit(icone.image,(icone.rect.top, icone.rect.left))
    
        if icone.estado == 'jogador_unico':
            for event in pygame.event.get():
                if event.type == QUIT:
                        exit()
                elif event.type == KEYDOWN:
                    if event.key == K_UP:
                        icone.image  = pygame.image.load('imagens/imagens_menu/selecao_recordes.png')
                        icone.rect.left = 440
                        icone.estado = 'recordes'
                    elif event.key == K_DOWN:
                        icone.image  = pygame.image.load('imagens/imagens_menu/selecao_instrucoes.png')
                        icone.rect.left = 390
                        icone.estado = 'instrucoes'
                    elif event.key == K_LEFT or event.key == K_RIGHT :
                        icone.image  = pygame.image.load('imagens/imagens_menu/selecao_creditos.png')
                        icone.rect.top = 310 
                        icone.estado = 'creditos'               
                    elif event.key == K_RETURN:
                        icone.estado = 'escolher_personagem'
                        personagem_escolhido = 'personagem_branco'
                        icone.rect.top = 0
                        icone.rect.left = 0
                        icone.image  = pygame.image.load('imagens/imagens_menu/perso1.png')
                        
        if icone.estado == 'tela_recordes':
            recordes = encontra_recordes()
            font = pygame.font.SysFont("Courier New",40)
            cor = (255,255,255)
            recordista1 = font.render('%s' % recordes[0],1,cor)
            recordista2 = font.render('%s' % recordes[1],1,cor)
            recordista3 = font.render('%s' % recordes[2],1,cor)
            recordista4 = font.render('%s' % recordes[3],1,cor)
            recordista5 = font.render('%s' % recordes[4],1,cor)
            screen.blit(recordista1, (80,130))
            screen.blit(recordista2, (80,180))
            screen.blit(recordista3, (80,230))
            screen.blit(recordista4, (80,280))
            screen.blit(recordista5, (80,330))
            for event in pygame.event.get():
                if event.type == QUIT:
                    exit()
                elif event.type == KEYDOWN:
                    if event.key == K_BACKSPACE:
                        icone.image  = pygame.image.load('imagens/imagens_menu/selecao_jogadorunico.png')
                        icone.rect.left = 335
                        icone.rect.top = 1
                        icone.estado = 'jogador_unico'
                    if pygame.key.name(event.key) in list(string.ascii_letters):
                        icone.nome_jogador = icone.nome_jogador + pygame.key.name(event.key)
                    if event.key == K_BACKSPACE:
                        icone.nome_jogador = icone.nome_jogador[:-1]

        if icone.estado == 'escolher_personagem':
            icone.rect.top = 0
            icone.rect.left = 0
            personagem1 = pygame.image.load('imagens/imagens_menu/perso1.png')
            personagem2 = pygame.image.load('imagens/imagens_menu/perso2.png')
            personagem3 = pygame.image.load('imagens/imagens_menu/perso3.png')
            personagem4 = pygame.image.load('imagens/imagens_menu/perso4.png')
            personagem5 = pygame.image.load('imagens/imagens_menu/perso5.png')
            if personagem_escolhido == 'personagem_branco':
                screen.blit(personagem1,(0,0))
                for event in pygame.event.get():
                    if event.type == KEYDOWN:
                        if event.key == K_RETURN:
                            personagem_escolhido = 'personagem_branco'
                            menu('escolher_nome',personagem_escolhido)
                        elif event.key == K_RIGHT:
                            personagem_escolhido = 'personagem_preto'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_LEFT:
                            personagem_escolhido = 'personagem_verde'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_BACKSPACE:
                            icone.image  = pygame.image.load('imagens/imagens_menu/selecao_iniciar.png')
                            icone.rect.left = 335
                            icone.rect.top = 1
                            icone.estado = 'jogador_unico'
                    
            if personagem_escolhido == 'personagem_preto':
                screen.blit(personagem2,(0,0))
                for event in pygame.event.get():
                    if event.type == KEYDOWN:
                        if event.key == K_RETURN:
                            personagem_escolhido = 'personagem_preto'
                            menu('escolher_nome',personagem_escolhido)
                        elif event.key == K_RIGHT:
                            personagem_escolhido = 'personagem_vermelho'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_LEFT:
                            personagem_escolhido = 'personagem_branco'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_BACKSPACE:
                            icone.image  = pygame.image.load('imagens/imagens_menu/selecao_jogadorunico.png')
                            icone.rect.left = 335
                            icone.rect.top = 1
                            icone.estado = 'jogador_unico'
                    
            if personagem_escolhido == 'personagem_vermelho':
                screen.blit(personagem3,(0,0))
                for event in pygame.event.get():
                    if event.type == KEYDOWN:
                        if event.key == K_RETURN:
                            personagem_escolhido = 'personagem_vermelho'
                            menu('escolher_nome',personagem_escolhido)
                        elif event.key == K_RIGHT:
                            personagem_escolhido = 'personagem_azul'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_LEFT:
                            personagem_escolhido = 'personagem_preto'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_BACKSPACE:
                            icone.image  = pygame.image.load('imagens/imagens_menu/selecao_jogadorunico.png')
                            icone.rect.left = 335
                            icone.rect.top = 1
                            icone.estado = 'jogador_unico'
                    
            if personagem_escolhido == 'personagem_azul':
                screen.blit(personagem4,(0,0))
                for event in pygame.event.get():
                    if event.type == KEYDOWN:
                        if event.key == K_RETURN:
                            personagem_escolhido = 'personagem_azul'
                            menu('escolher_nome',personagem_escolhido)
                        elif event.key == K_RIGHT:
                            personagem_escolhido = 'personagem_verde'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_LEFT:
                            personagem_escolhido = 'personagem_vermelho'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_BACKSPACE:
                            icone.image  = pygame.image.load('imagens/imagens_menu/selecao_jogadorunico.png')
                            icone.rect.left = 335
                            icone.rect.top = 1
                            icone.estado = 'jogador_unico'
                    
            if personagem_escolhido == 'personagem_verde':
                screen.blit(personagem5,(0,0))
                for event in pygame.event.get():
                    if event.type == KEYDOWN:
                        if event.key == K_RETURN:
                            personagem_escolhido = 'personagem_verde'
                            menu('escolher_nome',personagem_escolhido)
                        elif event.key == K_RIGHT:
                            personagem_escolhido = 'personagem_branco'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_LEFT:
                            personagem_escolhido = 'personagem_azul'
                            menu('escolher_personagem',personagem_escolhido)
                        elif event.key == K_BACKSPACE:
                            icone.image  = pygame.image.load('imagens/imagens_menu/selecao_jogadorunico.png')
                            icone.rect.left = 335
                            icone.rect.top = 1
                            icone.estado = 'jogador_unico'
                    
        if icone.estado == 'escolher_nome':
            screen.fill((000000000))
            font = pygame.font.SysFont("DejaVu Sans",35)
            cor = (255,255,255)
            pergunta = font.render('Digite aqui seu nome?',1,cor)
            for event in pygame.event.get():
                if event.type == QUIT:
                    exit()
                elif event.type == KEYDOWN:
                    if event.key == K_BACKSPACE:
                        icone.image  = pygame.image.load('imagens/imagens_menu/selecao_jogadorunico.png')
                        icone.rect.left = 335
                        icone.rect.top = 1
                        icone.estado = 'jogador_unico'
                    if (pygame.key.name(event.key) in list(string.ascii_letters) or pygame.key.name(event.key) in (list(string.digits))) and len(icone.nome_jogador) <= 6:
                        icone.nome_jogador = icone.nome_jogador + pygame.key.name(event.key)
                    if event.key == K_BACKSPACE:
                        icone.nome_jogador = icone.nome_jogador[:-1]
                    if event.key == K_RETURN and len(icone.nome_jogador) != 0:
                        jogo(icone.nome_jogador.capitalize(), elementos_fase, '', 3, personagem_escolhido)
                    elif event.key == K_RETURN and len(icone.nome_jogador) == 0:
                        mensagem_nome_vazio = font.render('Escreva um nome.',1,(255,255,255))

            nome = font.render(icone.nome_jogador.capitalize(),1,cor)
            screen.blit(pergunta,(220,150))
            screen.blit(nome,(275,180))
            screen.blit(mensagem_nome_vazio,(220,450))

        icone.loop(icone.estado)
        pygame.display.update()
menu('jogador_unico')
